package com.bawei.myapplication.view.fragment

import android.Manifest
import android.app.Activity
import android.content.Intent
import android.content.pm.PackageManager
import android.graphics.Bitmap
import android.provider.MediaStore
import android.view.View
import android.widget.ImageView
import android.widget.TextView
import androidx.core.app.ActivityCompat
import androidx.recyclerview.widget.RecyclerView
import com.ayvytr.adapter.smart
import com.bawei.coom.model.bean.domm.ShootListBean
import com.bawei.newsapplication.R
import com.bawei.newsapplication.base.BaseFragment
import com.bawei.newsapplication.databinding.FragmentQuestionBinding
import com.bawei.newsapplication.view.activity.quanmingpai.CommentListActivity
import com.bawei.newsapplication.view.activity.quanmingpai.VideoPlayDetailActivity
import com.bawei.newsapplication.viewmodel.QuanMingpaiViewModel
import com.bumptech.glide.Glide
import com.google.android.material.tabs.TabLayout
import com.shuyu.gsyvideoplayer.video.StandardGSYVideoPlayer

/**
 * 作者: 谢庆平
 * 时间: 2024/10/22 10:32
 * 描述:全民拍
 *
 * 以下是对热点新闻所包含的 “首页”“热点视频”“全民拍”“问答”“我的（登录和微信登录）” 各板块的介绍：
 *  * 首页：
 *  * 内容呈现：这是热点新闻平台的门面和核心展示区域。通常会将最重要、最热门、
 *  * 最具时效性的新闻资讯以多种形式呈现出来，比如头条新闻会以大标题、醒目的图片等方式突出展示，
 *  * 方便用户第一时间获取关键信息。新闻的来源广泛，包括专业的新闻媒体机构、记者采写的报道，
 *  * 以及一些经过筛选的自媒体或其他渠道的优质内容。
 *  * 功能特点：具备综合性和导航性。一方面，它整合了各种类型的热点新闻，如政治、经济、社会、文化、科技、体育等领域
 *  * 的重大事件和突发新闻，满足不同用户的信息需求；另一方面，首页还会设置分类导航、热门话题标签等，
 *  * 方便用户快速找到自己感兴趣的新闻类别或特定主题的新闻报道。
 *  * 热点视频：
 *  * 内容来源：该板块主要汇聚了与热点新闻相关的视频内容。
 *  * 这些视频的来源包括新闻媒体机构制作的新闻视频报道、现场目击者拍摄的视频素材、
 *  * 专业视频创作者根据热点新闻事件创作的解读或评论视频等。比如一些重大事件的现场视频、
 *  * 新闻发布会的视频记录、专家对热点事件的分析视频等。
 *  * 呈现形式：以视频的形式生动、直观地展现新闻内容，
 *  * 相比文字和图片更具感染力和冲击力。视频的时长不一，既有简短的新闻快讯视频，
 *  * 也有较为深入的专题视频报道。用户可以通过播放、暂停、快进、快退等操作来观看视频，
 *  * 还可以在视频下方查看相关的文字介绍、评论和点赞等信息。
 *  * 全民拍：
 *  * 平台性质：是一个鼓励广大民众参与新闻素材提供和新闻事件分享的互动平台。普通民众可以使用手机或其他摄影设备，拍摄身边发生的新闻事件、社会现象、有趣的场景等，并通过该平台上传分享。
 *  * 作用意义：一方面，它为新闻媒体提供了丰富的新闻素材来源，拓宽了新闻的采集渠道，使新闻更加贴近生活、贴近群众；另一方面，也为民众提供了一个表达自己观点、参与新闻传播的机会，增强了民众的新闻参与感和社会责任感。
 *  * 问答：
 *  * 问题类型：这里集中了用户关于热点新闻的各种疑问和探讨。
 *  * 问题可能涉及对新闻事件的背景、原因、影响的询问，对新闻中涉及的专业知识或法律问题的求解，
 *  * 对不同观点的争论等。例如，对于一些复杂的国际局势热点新闻，用户可能会问
 *  * “某地区冲突的根源是什么”“该事件对全球经济会产生怎样的影响” 等问题。
 *  * 互动模式：用户可以提出问题，也可以回答其他用户的问题。
 *  * 这种互动模式促进了用户之间的交流和思想碰撞，有助于更深入地理解热点新闻事件。
 *  * 同时，一些专业的新闻工作者、专家学者或相关领域的从业者也可能会参与到问答中，提供专业的解答和分析，提高问答的质量和权威性。
 *  * 我的（登录和微信登录）：
 *  * 登录功能：用户可以通过账号密码登录或微信登录的方式进入
 *  * “我的” 页面。登录后，系统可以记录用户的个人信息、浏览历史、收藏、点赞、评论等数据，方便用户随时查看和管理自己在热点新闻平台上的活动记录。
 *  * 个性化设置：在该页面中，用户可以根据自己的兴趣和需求进行个性化设置，比如设置新闻推送的频率、类型、时间段等，
 *  * 以便获取更符合自己需求的热点新闻资讯。此外，用户还可以修改个人资料、绑定或解绑第三方账号等。
 */


class QuestionFragment : BaseFragment<QuanMingpaiViewModel,FragmentQuestionBinding>(R.layout.fragment_question) {

    //TODO 全民拍适配器
    var tupianadapter=smart(mutableListOf<String>(),R.layout.neitu_mo,{item, position ->
        Glide.with(context).load(item).into(findViewById<ImageView>(R.id.img))
    }) {  }

    var sosuoadatper=smart(mutableListOf<ShootListBean.Result>(),R.layout.shootlist_item,{ item, position ->

        findViewById<TextView>(R.id.tv_pai).text=item.title
        findViewById<TextView>(R.id.nr).text=item.content
        findViewById<TextView>(R.id.tx).text=item.nickName
        findViewById<TextView>(R.id.pl).text="${item.commentNum}"
        Glide.with(context).load(item.headPic).into(findViewById<ImageView>(R.id.img))
        if(item.mediaType==1){
            if(item.thumbnailUrl!=null){
                findViewById<RecyclerView>(R.id.tpRec).visibility= View.VISIBLE
                findViewById<StandardGSYVideoPlayer>(R.id.sp).visibility= View.GONE
                var tulist = item.thumbnailUrl.split(",")
                tupianadapter.update(tulist)
                findViewById<RecyclerView>(R.id.tpRec).adapter=tupianadapter
                findViewById<RecyclerView>(R.id.tpRec).layoutManager=androidx.recyclerview.widget.GridLayoutManager(context,3)
            }

        }else {
            findViewById<StandardGSYVideoPlayer>(R.id.sp).visibility= View.VISIBLE
            findViewById<RecyclerView>(R.id.tpRec).visibility= View.GONE
            findViewById<StandardGSYVideoPlayer>(R.id.sp).setUp(item.videoUrl,true,null)
            findViewById<StandardGSYVideoPlayer>(R.id.sp).startPlayLogic()
        }
    }){}.click { item, position ->
        startActivity(Intent(context, VideoPlayDetailActivity::class.java).apply {
            putExtra("id",item.shootId)

        })
    }
    override fun initView() {
        mViewModel.getTypeList()
        mViewModel.getShootList(101,1,11)
        mDataBinding.recyclerQuanming.adapter=sosuoadatper
        mDataBinding.recyclerQuanming.layoutManager=androidx.recyclerview.widget.LinearLayoutManager(context)
        mDataBinding.tablist.addOnTabSelectedListener(object : TabLayout.OnTabSelectedListener {
            override fun onTabSelected(tab: TabLayout.Tab?) {
                when(tab?.position){
                    0->mViewModel.getShootList(101,1,11)
                    1->mViewModel.getShootList(102,1,11)
                    2->mViewModel.getShootList(103,1,11)
                    3->mViewModel.getShootList(104,1,11)
                    4->mViewModel.getShootList(105,1,11)
                    5->mViewModel.getShootList(106,1,11)
                }
            }

            override fun onTabUnselected(tab: TabLayout.Tab?) {
            }

            override fun onTabReselected(tab: TabLayout.Tab?) {
            }

        })
        mDataBinding.imgQuanming.setOnClickListener {
            startActivity(Intent(context, CommentListActivity::class.java))
        }
        //TODO 点击全民拍列表的条目，跳转到查询发布列表页：
        mDataBinding.ll.setOnClickListener {
            startActivity(Intent(context,VideoPlayDetailActivity::class.java))
        }
    }

    override fun dataObserve() {
        mViewModel.typeListData.observe(this,{
            it.result.forEach {
                mDataBinding.tablist.addTab(mDataBinding.tablist.newTab().setText(it.typeName))
            }
        })
        mViewModel.shootListData.observe(this,{
            sosuoadatper.update(it.result,false)
        })
    }

}